#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include "header.h"



int main(int argc, char** argv, char** argenv){



  int j;
  int cmp;
  int key;
  char* text;
  int* flags;
  int i;
  

  if ((argc>7) || (argc<3))
    {
      fprintf(stderr,"Erreur, nombre de paramètres incorrect.\n\n");
      usage_dcesar();
      exit(1);
    }
  

  flags = (int*) malloc (sizeof(int)*3);
  for (i=0;i<3;i++)
    flags[i]=0;



 if (argc==3)
   {
     char*c = malloc (3000);
     int d= read(0,c,3000);
     char *x = oter_espaces(c);
     c[d-1]='\0';
     affichage(d_cesar(x,atoi(argv[2])));
     free(c);
     free(x);
     free(flags);
     exit(0);

   }

  j=1;
  cmp=-1;
  key=-1;
 
  traitement_cesar(argc,argv,j,cmp,&key,&text,&flags);

 



   if (flags[0]==0)
    {
      fprintf(stderr,"Erreur,Pas de clé fournie.\n\n");
      usage_cesar();
      exit(5);
    } 


  if ((flags[1]==0) && (flags[2]==0))
    {
      fprintf(stderr,"Erreur, pas de texte à crypter fourni.\n\n");
      usage_cesar();
      exit(6);
    }
  

 


  if (flags[1]==1) /* si la clé est donnée avec le texte tapé directement */
    {
      text = d_cesar(text,key);
      affichage(text);
    }
  else
    {
      char* v = d_cesar(text,key);
      affichage(v);
      free(v);
    }


  free(text);
  free(flags);
  return (EXIT_SUCCESS);

}
